package App;

import java.util.ArrayList;
import java.util.List;

import juani.Cliente;
import juani.CondicionDeCompra;
import juani.Item;

import org.w3c.dom.Node;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

import entity.CondicionCompraEntity;

public class LeerPedido {
	private Document documentoXML;

	public LeerPedido(Document lista){
			
		try {
			documentoXML = lista;
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
    public Element getRaiz(){ 
		return documentoXML.getDocumentElement();
	}
    public int getNroSolicitud(){
    	return Integer.valueOf(this.getRaiz().getAttribute("numero"));
    }
    public Cliente getCliente(){
		Element root = this.getRaiz();
		NodeList n= root.getElementsByTagName("Cliente");
		Cliente p = new Cliente();
		for(int i=0; i<n.getLength(); i++){
			Element e = (Element)n.item(i);
			p.setCuil(e.getElementsByTagName("Cuit").item(0).getFirstChild().getNodeValue());
			p.setRazonSocial(e.getElementsByTagName("Nombre").item(0).getChildNodes().item(0).getNodeValue());
			}
		
		return p;
	}
    public String getFecha(){
    	Element root=this.getRaiz();
    	NodeList n=root.getElementsByTagName("Fecha");
    	return n.item(0).getFirstChild().getNodeValue();
    }
    public List<Item> getRodamientos(){	    
	    Element root = this.getRaiz();
		NodeList n= root.getElementsByTagName("Item");
		List<Item> items = new ArrayList<Item>();	
		for(int i=0; i<n.getLength(); i++){
			Element e = (Element)n.item(i);
			Item it = new Item();
			NodeList marcas = e.getElementsByTagName("Marca");
			NodeList origenes = e.getElementsByTagName("Origen");
			NodeList precios = e.getElementsByTagName("Precio");
			NodeList cantidad=e.getElementsByTagName("Cantidad");
			
			it.setOrigen(origenes.item(0).getFirstChild().getNodeValue());
			it.setPrecio(Double.valueOf(precios.item(0).getFirstChild().getNodeValue()));
			it.setMarca(marcas.item(0).getFirstChild().getNodeValue());
			it.setSerie(Integer.valueOf(e.getAttribute("serie")));
			it.setSufijo(e.getAttribute("sufijo"));
			it.setCantidad(Integer.valueOf(cantidad.item(0).getFirstChild().getNodeValue()));
			
			items.add(it);
		}
		
		return items;
    }
//    public List<Integer> getNumerosCotizaciones(){
//    	Element root = this.getRaiz();
//		NodeList n= root.getElementsByTagName("Cotizaciones");
//		List<Integer> numerosCot = new ArrayList<Integer>();
//		for(int i=0;n<get){
//			
//		}
//		for(int i=0; i<n.getLength(); i++){
//			Element e = (Element)n.item(i);
//			if(!e.getNodeValue().startsWith("\n")){
//				int numero=Integer.valueOf(e.getNodeValue());
//				numerosCot.add(numero);	
//			}		
//		}
//		return numerosCot;
//    }
    public ArrayList<Integer> getNumerosCotizaciones(){ // PEDIDO
    	Element root = this.getRaiz();
    	NodeList n= root.getElementsByTagName("Cotizaciones");
    	ArrayList<Integer> numeros = new ArrayList<Integer>();
    	for(int i=0; i<n.getLength(); i++){
    		Element e = (Element)n.item(i);
    		String numero =	e.getElementsByTagName("Numero").item(0).getFirstChild().getNodeValue();
    		numeros.add(Integer.valueOf(numero));
    	}
    	return numeros;
    }


	
	public CondicionDeCompra getCondicionCompra(){
		Element root = this.getRaiz();
		NodeList n= root.getElementsByTagName("CondicionDeCompra");
		
		CondicionDeCompra c = new CondicionDeCompra();
		ArrayList<CondicionDeCompra> condiciones = new ArrayList<CondicionDeCompra>();
		
		for(int i=0; i<n.getLength(); i++){
			Element e = (Element)n.item(i);
			
						NodeList formasPago = e.getElementsByTagName("FormaPago");
						NodeList plazos = e.getElementsByTagName("Plazo");
						NodeList intereses = e.getElementsByTagName("Intereses");
						NodeList descuentos = e.getElementsByTagName("Descuento");
						
						c.setDescuento(Double.valueOf(descuentos.item(0).getFirstChild().getNodeValue()));
						c.setPlazo(plazos.item(0).getFirstChild().getNodeValue());
						c.setIntereses(Double.valueOf(intereses.item(0).getFirstChild().getNodeValue()));
						c.setFormaPago(formasPago.item(0).getFirstChild().getNodeValue());
						
						condiciones.add(c);
													
		}
		
		return condiciones.get(0);
		
	
		
	}        
}
